from django.contrib.auth.models import AbstractUser,UserManager as _UserManager
from django.db import models

# Create your models here.

# """创建超级管理员"""
class UserManager(_UserManager):
    def create_superuser(self, username,password,email=None, **extra_fields):
        return super().create_superuser(username=username,password=password,email=email,**extra_fields)


# """创建用户"""
class User(AbstractUser):#继承AbstractUser类，这个父类本身已经包含了username,email等字段
    """用户新增字段"""
    mobile=models.CharField("手机号",max_length=11,unique=True,help_text="手机号",error_messages={"unique":"手机号已经注册"})
    email_active = models.BooleanField("邮箱状态",default=False)


    # """负责整个表的布置问题，如db_table='tb_user'给表命名"""
    class Meta:
        db_table='tb_user'
        verbose_name="用户"
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.username
    # """重新定义UserManager类，在创建user的时候使用username,mobile和password,而不是默认的username,email和password"""
    objects = UserManager()
    REQUIRED_FIELDS = ['mobile']#一个字段名列表，用于当通过createsuperuser管理命令创建一个用户时的提示